/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cz.muni.fi.pa165.portalnahouby.implementation.daointerface;
import cz.muni.fi.pa165.portalnahouby.api.dto.PickerDTO;
import cz.muni.fi.pa165.portalnahouby.implementation.entity.Picker;
import java.util.List;

/**
 * Interface for DAO object for picker
 * 
 * @author Lukas Marica
 */
public interface PickerDAO {
    
	/**
	 * Stores new picker
	 * @param picker 
	 * 
	 * @throws IllegalArgumentException on null picker or not null picker's id
	 */
	public void addPicker( Picker picker  );
	
	/**
	 * Updates picker
	 * @param picker 
	 * 
	 * @throws IllegalArgumentException on null picker or null picker's id
	 */
	public void editPicker( Picker picker  );
	
	/**
	 * Removes picker
	 * @param id 
	 * 
	 * @throws IllegalArgumentException on null id
	 */
	public void deletePicker( Long id );
	
	/**
	 * Finds picker
	 * @param id 
	 * 
	 * @throws IllegalArgumentException on null id
	 */
	public Picker findPicker( Long id );
	
	/**
	 * Finds picker by name
	 * @param name 
	 * @param pass
	 * 
	 * @throws IllegalArgumentException on null name
	 */
	public Picker findPickerByLoginPass( String name, String pass );
	
	/**
	 * Retrieves all available pickers
	 * @return List of all pickers
	 */
	public List<Picker> getAllPickers();
}
